home *** CD-ROM | disk | FTP | other *** search
/ Almathera Ten Pack 3: CDPD 3 / Almathera Ten on Ten - Disc 3: CDPD3.iso / scope / 101-125 / scopedisk122 / popup / source / portstuff.c < prev    next >
C/C++ Source or Header  |  1995-03-19  |  952b  |  42 lines

  1. #include "PopUpMenu.h"
  2.  
  3. /*+++++++++++++++++++++++++++++++++++++++++++++
  4. +  CreatePort(Name, Pri)
  5. +  DeletePort(Port)
  6. +
  7. +     Replacements for amiga.lib
  8. +++++++++++++++++++++++++++++++++++++++++++++++*/
  9. struct MsgPort *CreatePort(Name, Pri)
  10.   char    *Name;
  11.   LONG    Pri;
  12. {
  13.   UBYTE  SigBit;
  14.  
  15.   if ((SigBit = AllocSignal(-1)) != -1) {
  16.     struct MsgPort  *const Port = AllocMem(sizeof(struct MsgPort),
  17.                        MEMF_CLEAR | MEMF_PUBLIC);
  18.     if (Port) {
  19.       Port->mp_Node.ln_Name = Name;
  20.       Port->mp_Node.ln_Pri  = Pri;
  21.       Port->mp_Node.ln_Type = NT_MSGPORT;
  22.       Port->mp_Flags        = PA_SIGNAL;
  23.       Port->mp_SigBit        = SigBit;
  24.       Port->mp_SigTask        = (struct Task *)FindTask(0);
  25.  
  26.       AddPort(Port);
  27.       return(Port);
  28.     }
  29.     else
  30.       FreeSignal((LONG)SigBit);
  31.   }
  32.   return(NULL);
  33. }
  34.  
  35. VOID DeletePort(Port)
  36.   struct MsgPort *const Port;
  37. {
  38.   RemPort(Port);
  39.   FreeSignal((LONG)Port->mp_SigBit);
  40.   FreeMem(Port,sizeof(struct MsgPort));
  41. }
  42.